package prodejb;

import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import entidades.Producto;

/**
 * Session Bean implementation class ProdEJB
 */

@Stateless(name = "PEJB", mappedName = "PEJB")
public class ProdEJB implements ProdEJBRemote {

    /**
     * Default constructor.
     */
    @PersistenceContext(unitName = "JPATINET")
    private EntityManager em;

    /**
     * Constructor de la clase.
     */
    public ProdEJB() {

    }

    /**
     * @param p
     *            sirve para agregar a la base de datos en la tabla Producto
     */
    public void addProd(Producto p) {
        em.persist(p);
    }

    /**
     * @param idprod
     *            se ingrese idprod, entero
     */
    public void delProd(int idprod) {
        Producto delProd = em.find(Producto.class, idprod);
        em.remove(delProd);
    }

    /**
     * 
     * @see prodejb.ProdEJBRemote#modProd(entidades.Producto)
     */
    public void modProd(Producto p) {
        Producto pmod = em.find(Producto.class, p.getIdProd());
        pmod.setCantProd(p.getCantProd());
        pmod.setDescProd(p.getDescProd());
        pmod.setIdProd(p.getIdProd());
        pmod.setNomProd(p.getNomProd());
        pmod.setPrecioProd(p.getPrecioProd());
    }

    /**
     * 
     * @see prodejb.ProdEJBRemote#getList()
     */
    public List<Producto> getList() {
        Query q = em.createQuery("Select p from Producto p");
        @SuppressWarnings("unchecked")
        List<Producto> listP = (List<Producto>) q.getResultList();
        return listP;
    }

}
